package com.brillilab.service.core.system;

import com.brillilab.domain.po.kit.ReagentSearchField;
import com.brillilab.domain.po.system.Dict;
import com.brillilab.domain.vo.system.DictDutyYearVo;
import com.brillilab.domain.vo.system.ReagentFieldDataVo;

import java.util.List;
import java.util.Map;

/**
 * 字典服务接口
 *
 * @author wmh
 */
public interface IDictService {

	Dict insert(Dict entity);

	boolean deleteById(Long id);

	boolean updateById(Dict entity);

	Dict selectById(Long id);

	/**
	 * 获取单位
	 * 
	 * @return
	 */
	Map<String, List<Dict>> getUnit();

	/**
	 * 获取温区
	 * 
	 * @return
	 */
	List<Dict> getZone();

	/**
	 * 获取职称列表
	 * 
	 * @return
	 */
	List<Dict> getDuty();


	/**
	 * 获取职务年限列表
	 *
	 * @return
	 */
	List<DictDutyYearVo> getDutyYearList();
	/**
	 * 获取单位Map
	 * @return
	 */
	Map<Integer, String> getUnitMap();
	/**
	 * 获取温区Map
	 * @return
	 */
	Map<Integer, String>  getZoneMap();
	/**
	 * 获取职称Map
	 * @return
	 */
	Map<Integer, String>  getUserDutyMap();

	/**
	 * 获取职称Map
	 * @return
	 */
	Map<Integer ,String> getDutyMap();
	/**
	 * 获取试剂类型Map
	 * @return
	 */
	Map<Long, String>  getReagentTypeMap(Long labId);
	
	/**
	 * @Description: get box index and color
	 * @Params: []
	 * @return java.util.List<com.brillilab.domain.po.system.Dict>
	 * @author wuzhiyu
	 * @date 2018/11/16 10:09
	 */
	List<Dict> getBoxColor();

	List<Dict> getBoxSize();

	List<Dict> getTubeSize();
	/**
	 * @Description: TODO
	 * @Params: []
	 * @return java.util.List<com.brillilab.domain.po.system.Dict>
	 * @author wuzhiyu
	 * @date 2018/11/20 18:26
	 */
	List<Dict> getAllUnit();

	/**
	 * 根据code和type获取
	 * @param code
	 * @param type
	 */
    Dict selectOne(Integer code,String type);
    /**
     * 获取预警值
     * @return
     */
    List<Dict> getWarnamount();
    /**
     * 获取试剂字段默认值列表
     * @return
     */
	List<ReagentFieldDataVo> getReagentFieldData();
	/**
	 * 获取试剂高级搜索条件字段列表
	 * @return
	 */
	List<ReagentSearchField> getReagentSearchField(Long reagentTypeId);

	/**
	 * 多孔板类型
	 * @return
	 */
    List<Dict> getPlateType();

	/**
	 * 多孔板类型Map
	 * @return
	 */
	Map<Integer,String> getPlateTypeMap();
}
